Randomness is found a critical role in cryptography for ensuring security of data transmission. In order to implement randomness in hardware, metastability of flip-flop or a clock jitter is used as a source of randomness. Many of the implementations employ ring oscillators as a clock. A large number of ring oscillators are often employed to maintain a required level of randomness. There are 256 ring oscillators used in the HDCP 2.0 for a secret key generation for a safe data transmission.
FIG. 1 illustrates a simplified view of data encryption in HDCP. Referring to FIG. 1, secret key 101 is constructed from a random number generated from True Random Number Generator (TRNG) 102. The random number is used to calculate the secret keys both at the source and the sink. The random number is generated first from the source and the secret key is computed. At the same time, the random number can be transmitted to the sink so that it can calculate its own secret key. The source encrypts the video stream, video data 110, using the secret key via the XOR operation 120 and encrypted video stream 111 is transmitted to the sink. The sink uses its own secret key to decrypt the received encrypted video stream 111.
TRNG 102 employs a large number of ring oscillators to generate the random number. FIG. 2 illustrates an example of a TRNG. Referring to FIG. 2, ring oscillators (ROs) 2011-N are the odd number of inverters 210 connected back-to-back through the combinational feedback as shown. The outputs of ring oscillators 2011-N are combined using XOR logic 202 and the output of XOR logic is connected to flip-flop 203. The sampling clock Fs is provided to capture a stream of the output of XOR logic 202 in order to obtain the random numbers.
Due to an inherent combinational feedback in ring oscillators 2011-N, testing of each of ring oscillators 2011-N using the economical structural tests such as the stuck-at test can be difficult. Often, ring oscillators 2011-N are functionally tested one at a time in isolation. Such conventional ring oscillator tests can involve observation of the ring oscillator output directly at the tester or employment of some on-chip counters to detect the oscillation produced by the ring oscillator under test. Testing the output of ring oscillator at the tester may be costly due to asynchronous nature of ring oscillator and inefficient test access. The test method employing the on-chip counters may suffer from hardware and test time overhead due to a test setup of each individual ring oscillator.
Thus, cost of the functional test can be substantial if a number of ring oscillators is large and is increasing. It is critical to provide low cost test solutions that are not cost sensitive to the increase in problem size, i.e. the number of employed ring oscillators, especially when the price of commercial ICs is continuously under the pressure but their cost of test persists if not increasing.